Turning Eclipse Against Itself: Finding Bugs in Eclipse Code Using Lightweight Static Analysis

نویسنده

  • V. Benjamin Livshits
چکیده

While some commonly occurring error patterns in Java are addressed by static tools such as FindBugs[5], complex software systems are full of rules that developers must follow. These application-specific rules are often not expressed in any way other than code comments and often are not enforced, leading to hard-to-detect bugs later in the program execution. Eclipse represents one of the biggest Java projects ever created. While surprisingly robust, Eclipse still suffers from serious bugs that lead to crashes and resource exhaustion. Eclipse is a collaborative development projects, with its core developers located across multiple continents; furthermore, hundreds of available plugins are developed by programmers with varying levels of familiarity with intricacies of Eclipse APIs, thus causing the introduction of complex application-specific bugs. Bugs addressed in this paper do not immediately exhibit themselves and are often discovered after deployment. In this paper we describe some common error patterns in Eclipse code and propose, Checklipse, a lightweight analysis tool for finding these errors; Checklipse is implemented as an Eclipse plugin and leverages Eclipse’s JDT APIs to analyze Java code. In our experiments, we find a total of 68 likely errors in Eclipse sources that follow the error patterns described in this paper.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Turning Eclipse Against Itself: Improving the Quality of Eclipse Plugins

While many researchers have used Eclipse as a platform for developing software engineering and program analysis tools, Eclipse itself presents an excellent subject for analysis and study. Eclipse represents one of the biggest Java projects ever created. While surprisingly robust, Eclipse still suffers from serious bugs that lead to crashes and resource exhaustion. Eclipse is a collaborative dev...

متن کامل

Debugging Static Analysis

To detect and x bugs and security vulnerabilities, software companies use static analysis as part of the development process. However, static analysis code itself is also prone to bugs. To ensure a consistent level of precision, as analyzed programs grow more complex, a static analysis has to handle more code constructs, frameworks, and libraries that the programs use. While more complex analys...

متن کامل

Dynamic Symbolic Execution using Eclipse CDT

Finding software bugs before deployment is essential to achieve software safety and security. The achievable code coverage and input coverage with manual test suite development at reasonable cost is limited. Therefore, complementary automated methods for bug detection are of interest. This paper describes automated context-sensitive detection of software bugs with dynamic symbolic execution. Th...

متن کامل

Static Bug Detection Through Analysis of Inconsistent Clones

Existing software systems contain a significant amount of duplicated code. Such redundancy can negatively impact program correctness, since inconsistent updates to duplicated code fragments are prone to introduce subtle bugs. This paper outlines our work-in-progress to statically detect inconsistencies in duplicated code fragments in order to find clone-related bugs. We illustrate the problem o...

متن کامل

Exception analysis in the Java Native Interface

A Foreign Function Interface (FFI) allows one host programming language to interoperate with another foreign language. It enables efficient software development by permitting developers to assemble components in different languages. One typical FFI is the Java Native Interface (JNI), through which Java programs can invoke native-code components developed in C, C++, or assembly code. Although FF...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005